草庐IT

c++ - 在 C++11 中将 std::vector 移动到 std::deque

全部标签

c++ - 哪些适用于 Windows 的 C++11 编译器支持新的类型特征,例如 "is_nothrow_move_constructible"?

是否有支持新的C++11类型特征的适用于Windows的C++11编译器,例如is_nothrow_move_constructible?我试图编写一个支持它的容器,却发现我的编译器(VC++2010、TDMMinGW32GCC4.6)都不支持它... 最佳答案 对于mingw,我推荐STL'sdistrohere(海湾合作委员会4.7.1)。它还带有boost1.50。还有mingw-w64(原始mingw的一个分支),我推荐rubenvb'spersonalbuildshere.转到ToolchainstargettingWin

c++ - 在 C++ 中将 UTF8 字符串转换为 UTF16 字符串

我正在使用VC6.0。我的项目是用Unicode编译的。我正在使用zlib1.1.3来扩充包含我的UTF-8字符串的文件。我以ASCII格式获取它,但我保证它全部是英文的,因此我可以将其作为UTF8字符串关联(可以吗?)。我已经使用了Codeproject中建议的函数如下:WCHAR*SMUUTF8toUTF16(LPCSTRutf8,int*pLen){WCHAR*ptr=NULL;*pLen=MultiByteToWideChar(CP_UTF8,0,utf8,-1,NULL,0);if(*pLen>1){ptr=(WCHAR*)malloc(*pLen);if(ptr){Mult

c++ - C 字符串和 std::string 之间的转换导致平台特定方式出现乱码

我今天正在处理一个特定于平台的错误,在这个错误中,在Windows机器上某个字符串会非常乱码,但在Mac上则不会。该错误与在std::string和constchar*之间进行显式和隐式转换的几行有关。基本上,我有一个带有签名的函数voidfoo(conststd::string&id);foo在某些时候打印字符串。在Windows上,如果像下面这样调用,它会打印带有不同程度损坏的id字符串(混淆前几个字符或整个字符串)std::stringmystring=bar();constchar*id=mystring.c_str();foo(id);//passtheCstylestrin

c++ - 涉及 `std::string` 的编译导致 Windows 错误状态

最小的例子:#include#includeintmain(int/*argc*/,char*/*argv*/[]){HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);//Behaviorthesame,withorwithout.DWORDerr=GetLastError();std::stringstr;return(int)err;//returns127ifflineaboveuncommented,0iffcommented}此程序返回127,对应于ERROR_PROC_NOT_FOUND(“找不到指定的过程。”)。请注意,err是在s

c++ - 使用 std::filesystem 输出作为 LPCWSTR

我正在制作一个程序,它递归地列出某个目录中的所有文件,并使用WinINet将每个文件分别上传到FTP服务器。我遇到的问题是在FtpPutFile()函数中使用filesystem::path::filename因为需要LPCWSTR。转换它(或以某种方式按原样使用它)的最好和最简单的方法是什么?std::stringpath="C:\\Programs";for(constauto&entry:std::experimental::filesystem::recursive_directory_iterator(path))FtpPutFile(hIConnect,entry.path

c# - 在 C# 中将鼠标光标移出屏幕

我有一个高度为2000的wpf窗口,实际桌面高度约为1000。显然,大约一半的窗口不在屏幕上。即使窗口延伸到屏幕下方,鼠标也不会向下移动到该区域。我确实希望此内容不在屏幕上,并且如果鼠标位于该位置的元素上,我希望鼠标能够移过它并单击元素。我不想更改我的屏幕分辨率,因为某些内容绝对不能显示在屏幕上。不确定该怎么做。 最佳答案 光标定界不是由应用程序完成的,而是由Windows本身完成的。据我所知,没有办法让你的光标指向屏幕之外。您可以通过执行许多游戏的操作来模拟您想要的内容。不要绘制Windows光标,在您的应用程序窗口中绘制自定义光

c++ - std::map::find(char*) 在 Debug模式下无法在 64 位机器上运行

我面临一个有趣的情况,想与大家分享。当然,如果有人能提供帮助,我将不胜感激!#include"stdafx.h"#include#defineDEF_NAME1"NAME1"#defineDEF_NAME2"NAME2"#defineDEF_NAME3"NAME3"#defineDEF_NAME4"NAME4"structTInfo{constchar*TName;constchar*TArray1[100];constchar*TArray2[100];};typedefstd::mapTInfoMap;typedefstd::pairTInfoPair;staticTInfoMap

c++ - 如何销毁由 std::thread 显式创建的线程?

我希望两个线程最初都在无限循环中运行,但过了一段时间我想杀死第一个线程而不等待它完成,第二个线程应该正常运行。我该如何实现?当我运行下面的代码时,出现调试错误!voidf1(inti){while(1){printf("ExecutngThread%d:%d\n",i,j);Sleep(10);}}intmain(){std::threadt1(f1,1);std::threadt2(f1,2);Sleep(100);t1.~thread();while(1){Sleep(10);}return0;} 最佳答案 程序按照设定的控制流

c++ - 在 C 窗口中将参数传递给线程的最佳方法是什么?

嗨我有一个使用几个变量的线程。变量在运行时由argv[]确定。我的选择:使变量成为全局变量,以便线程可以使用它们(不需要保护它们,因为线程不会更改它们)。我不太愿意使用它,因为全局变量不是很好创建一个结构来保存变量并将其传递给线程。varibales并没有真正相关,因此它将是一个“强制”结构,除了线程的参数之外没有任何意义。而且,比选项1更复杂还有其他选择吗?哪个更好?谢谢! 最佳答案 itwouldbea"forced"structwithnomeaningotherthanargumentforthethread这听起来像是对结

c++ - 为什么 std::ofstream 添加额外的#13(换行符)字符?

我正在使用一个基本的std::ofstream对象,创建如下:output_stream=std::ofstream(output_file.c_str());这会创建一个文件,其中包含一些信息。让我展示这样一条消息的示例:(Watch窗口摘录)full_Message"Errorwhileprocessingmessage:\r\n\tForecastRequest:"这一切都可以,但是在启动以下命令后,出现了问题:output_stream为了找出问题所在,让我们看一下文件的十六进制转储:(这是文件的十六进制显示,如Notepad++中所示。为清楚起见,我截取了屏幕截图。)如您所见